package com.redislock.aop.tool.annonation;



import com.redislock.aop.tool.enums.RedisLockTypeEnum;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
/**
 * redis分布式锁实现
 */
public @interface RedisLockAnnotation {

    /**
     * 自定义加锁，实现分布式办法加锁，定时加锁
     */
    RedisLockTypeEnum typeEnum();

    /**
     * 锁释放时间
     */
    long lockTime() default 30;

    /**
     * 释放时间单位
     * @return
     */
    TimeUnit lockTimeUnit() default TimeUnit.SECONDS;
}
